//
//  RevanHomeViewController.swift
//  weibo_swift
//
//  Created by 紫荆秋雪 on 16/11/30.
//  Copyright © 2016年 紫荆秋雪. All rights reserved.
//

import UIKit

//MARK: - 0、本文件变量
private let cellId = "cellID"

//MARK: - 1、系统生命周期
class RevanHomeViewController: RevanBaseViewController {
    // 1-0、定义属性
    // 微博首页数据视图模型
    lazy var homeListModel = RevanStatusListModel()
    // 1-1、系统生命周期
    override func viewDidLoad() {
        super.viewDidLoad()
        // 1、注册cell
        tableView?.register(UITableViewCell.self, forCellReuseIdentifier: cellId)
    }
    
    // 1-2 、监听方法
    // 1、监听显示好友
    @objc func showFriends() {
        //目标控制器
        let pushVC = DemoViewController()
        
        navigationController?.pushViewController(pushVC, animated: true)
    }
    
    // 1-3 、加载首页数据[模型]
    override func loadData() {
        
        homeListModel.loadStatus(pullup: self.isPullup) { (isSuccess, shouldRefresh) in
            // 停止刷新
            self.refreshControl?.endRefreshing()
            // 刷新界面
            // Implicit use of 'self' in closure; use 'self.' to make capture semantics explicit
            //有网络返回才刷新界面
            if shouldRefresh {
                self.tableView?.reloadData()
            }
            // 结束上拉刷新标识
            self.isPullup = false
        }
    }
}

// MARK: - 2、设置 首页 导航栏Item
extension RevanHomeViewController {
    // 2-1、设置 首导航栏上的 "好友"
    override func setupNavigationBar() {
        super.setupNavigationBar()
        // 2、设置导航栏的Item
        navItem.leftBarButtonItem = UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
        // 3、设置标题
        setupHomeTitle()
    }
    
    // 2-2、设置标题
    private func setupHomeTitle() {
        
        let titleBtn = RevanTitleButton(title: RevanNetworkManager.shared.userAccount.screen_name)
        
        titleBtn.addTarget(self, action: #selector(titleBtnClick), for: .touchUpInside)
        navItem.titleView = titleBtn
        
    }
    
    @objc func titleBtnClick(btn: UIButton) {
        btn.isSelected = !btn.isSelected
    }
}

// MARK: - 3、表格数据源方法
extension RevanHomeViewController {

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return homeListModel.statusList.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        // 1、创建cell
        let homeCell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath)
        // 2、cell中模型赋值
        homeCell.textLabel?.text = homeListModel.statusList[indexPath.row].text
        // 3、返回cell
        return homeCell
    }
}


